package com.company.jdk.lambda;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.function.Consumer;
import java.util.function.Predicate;

/**
 * @author yingfing
 * @create 2020--10--03 22:19
 * @describe
 */
public class TestLambda {
    public static void main(String[] args) {
        // 1. Lambda 表达式
        // 1.1 在什么地方使用 ?
        //  方法中传入的是"一个函数式接口" 的时候
        // 1.2 怎么使用
        //  注意 : 输入 、 输出
        Arrays.asList("a", "b", "c").stream().filter(new Predicate<String>() {
            @Override
            public boolean test(String s) {
                return s.contains("a");
            }
        }).forEach(
                new Consumer<String>() {
                    @Override
                    public void accept(String s) {
                        System.out.println(s);
                    }
                }
        );


        System.out.println("------JDK1.8-----");

        Arrays.asList("a", "b", "c").stream()
                .filter(x -> x.contains("a"))
                .forEach(x -> System.out.println(x));
        // 为什么 foreach 可以使用 lambda
        ArrayList<Integer> list = new ArrayList<>();
        list.add(20);
        list.add(20);
        list.add(20);
//        list.contains(x->x);
//        list.get(()->1);
        // index () -> 1

    }
}
